﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Flighttracker
{
    public class Piloot : ISearchable
    {
        public string PilootID { get; private set; }
        public Luchtvaartmaatschappij Luchtvaartmaatschappij { get; private set; }
        public string Voornaam { get; private set; }
        public string Achternaam { get; private set; }
        public string Voorletters { get; private set; }
        public DateTime Geboortedatum { get; private set; }
        public string Nationaliteit { get; private set; }
        public List<PilootInzet> InzetList { get; private set; }

        /// <summary>
        /// Constructor
        /// Er wordt een nieuwe lijst aangemaakt zodra de constructor is aangeroepen.
        /// </summary>
        public Piloot(Luchtvaartmaatschappij Luchtvaartmaatschappij, string voornaam, string achternaam, string voorletters,
            DateTime gebdatum, string nationaliteit)
        {
            this.Luchtvaartmaatschappij = Luchtvaartmaatschappij;
            this.Voornaam = voornaam;
            this.Achternaam = achternaam;
            this.Voorletters = voorletters;
            this.Geboortedatum = gebdatum;
            this.Nationaliteit = nationaliteit;

            InzetList = new List<PilootInzet>();
        }

        public Piloot(List<string> stringList)
        {
            PilootID = stringList[0];
            if (stringList[1] != "null") Luchtvaartmaatschappij = (Luchtvaartmaatschappij)Flighttracker.Instance.ZoekObject(stringList[1]);
            Luchtvaartmaatschappij.VoegPilootToe(this);
            Voornaam = stringList[2];
            Achternaam = stringList[3];
            if (stringList[4] != "null") Voorletters = stringList[4];
            Geboortedatum = DateTime.ParseExact(stringList[5], "d-M-yyyy H:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
            if (stringList[6] != "null") Nationaliteit = stringList[6];

            InzetList = new List<PilootInzet>();
        }

        /// <summary>
        /// Geeft de lijst terug van de ingezette piloten.
        /// </summary>
        /// <returns></returns>
        public List<PilootInzet> ToonAlleInzetten()
        {
            return InzetList;
        }

        /// <summary>
        /// Voegt een pilootinzet toe aan de lijst.
        /// </summary>
        /// <param name="pilootinzet"></param>
        public void VoegPilootInzetToe(PilootInzet pilootinzet)
        {
            InzetList.Add(pilootinzet);
        }

        public bool ZoekUniekID(string id)
        {
            if(PilootID == id)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

    }
}